package cn.com.blueInfo.HaiYuan.business.journal.mapper;

import cn.com.blueInfo.HaiYuan.business.journal.entity.JournalBase;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * 日记账基本表
 * @ClassName: JournalBaseMapper
 * @tableName: tj_hai_journal_base
 * @author suxch
 * @date 2020年9月24日  下午1:54:59
 */
@Mapper
public interface JournalBaseMapper extends BaseMapper<JournalBase> {

    /**
     * 批量新增日记账基本信息
     * @Title: batchAddJournalBaseInfo
     * @param journalBaseList
     * @return int
     * @throws
     */
    int batchAddJournalBaseInfo(List<JournalBase> journalBaseList);

    /**
     * 新增日记账基本信息
     * @Title: addJournalBaseInfo
     * @param journalBase
     * @return int
     * @throws
     */
    int addJournalBaseInfo(JournalBase journalBase);

    /**
     * 批量删除日记账基本信息
     * @Title: batchDelJournalBaseInfoByUnids
     * @param journalBaseUnids
     * @return int
     * @throws
     */
    int batchDelJournalBaseInfoByUnids(ArrayList<String> journalBaseUnids);

    /**
     * 删除日记账基本信息
     * @Title: delJournalBaseInfoByUnid
     * @param unid
     * @return int
     * @throws
     */
    int delJournalBaseInfoByUnid(String unid);

    /**
     * 批量更新日记账基本信息
     * @Title: batchUpdateJournalBaseInfoByUnid
     * @param journalBaseList
     * @return int
     * @throws
     */
    int batchUpdateJournalBaseInfoByUnid(List<JournalBase> journalBaseList);

    /**
     * 更新日记账基本信息
     * @Title: updateJournalBaseInfoByUnid
     * @param journalBase
     * @return int
     * @throws
     */
    int updateJournalBaseInfoByUnid(JournalBase journalBase);

    /**
     * 分页查询日记账基本信息
     * @Title: queryJournalBaseInfo
     * @param paramMap
     * @return List<JournalBase>
     * @throws
     */
    List<JournalBase> queryJournalBaseInfo(Map<String, Object> paramMap);

    /**
     * 导出日记账基本信息
     * @Title: exportJournalBaseInfo
     * @param paramMap
     * @return List<JournalBase>
     * @throws
     */
    List<JournalBase> exportJournalBaseInfo(Map<String, Object> paramMap);

    /**
     * 查询日记账基本信息
     * @Title: queryJournalBaseInfo
     * @return List<JournalBase>
     * @throws
     */
    List<JournalBase> queryJournalBaseInfo();

    /**
     * 条件查询日记账基本信息数量
     * @Title: queryJournalBaseInfoCount
     * @param paramMap
     * @return Integer
     * @throws
     */
    Integer queryJournalBaseInfoCount(Map<String, Object> paramMap);

    /**
     * 查询日记账基本信息数量
     * @Title: queryJournalBaseInfoCount
     * @return Integer
     * @throws
     */
    Integer queryJournalBaseInfoCount();

    /**
     * 查询日记账基本合计信息
     * @Title: queryJournalBaseSumInfo
     * @param paramMap
     * @return JSONArray
     * @throws
     */
    JSONArray queryJournalBaseSumInfo(Map<String, Object> paramMap);

    /**
     * 查询日记账现有数据月份
     * @Title: queryJournalBaseDateInfo
     * @param paramMap
     * @return JSONArray
     * @throws
     */
    JSONArray queryJournalBaseDateInfo(Map<String, Object> paramMap);

    /**
     * 查询上月结余信息
     * @Title: queryLastMonthBalanceInfo
     * @param paramMap
     * @return JSONArray
     * @throws
     */
    JSONArray queryLastMonthBalanceInfo(Map<String, Object> paramMap);

    /**
     * 获取年份信息
     * @Title: querySumYearsInfo
     * @return List<String>
     * @throws
     */
    List<String> querySumYearsInfo(Map<String, Object> paramMap);

    /**
     * 获取指定年的月份信息
     * @Title: querySumMonthInfo
     * @param paramMap
     * @return List<String>
     * @throws
     */
    List<String> querySumMonthInfo(Map<String, Object> paramMap);

    /**
     * 获取指定月的日期信息
     * @Title: querySumDaysInfo
     * @param paramMap
     * @return List<String>
     * @throws
     */
    List<String> querySumDaysInfo(Map<String, Object> paramMap);

    /**
     * 查询分类汇总信息
     * @Title: queryItemsSumInfo
     * @param paramMap
     * @return JSONArray
     * @throws
     */
    JSONArray queryItemsSumInfo(Map<String, Object> paramMap);

    /**
     * 查询分类汇总信息数量
     * @Title: queryItemsSumInfoCount
     * @param paramMap
     * @return Integer
     * @throws
     */
    Integer queryItemsSumInfoCount(Map<String, Object> paramMap);

    /**
     * 查询项目汇总信息
     * @Title: queryJournalBaseItemsSumInfo
     * @param paramMap
     * @return Integer
     * @throws
     */
    Integer queryJournalBaseItemsSumInfo(Map<String, Object> paramMap);

}
